package com.yanggu.scala.chapater07.visit

object VisitTest {

  def main(args: Array[String]): Unit = {
    val demo0 = new VisitDemo01
    //报错, private修饰的字段只能在本类和伴生对象中使用
    //demo0.sal

    println(demo0.name)

    demo0.showInfo()

    //protected只能在子类中使用, 同包无法访问
    //demo0.age
  }

}

object VisitDemo01 {

  def test1(visitDemo01: VisitDemo01): Unit = {
    //private为私有权限, 只能在类的内部和伴生对象中使用
    println(visitDemo01.sal)
  }

}

/**
 * scala中字段、方法等访问权限和java不一样，有四种public、protected、private
 * scala中没有public关键字, 默认就是public
 * protected为受保护的权限, 只能子类访问, 同包不能访问
 * private为私有权限, 只能在类的内部和伴生对象中使用
 */
class VisitDemo01 {

  //可以理解为public, 可以在任意地方使用
  var name = "jack"

  //私有属性, 只能在类的内部和伴生对象中使用
  private val sal = 9999.9D

  //protected只能在子类中使用, 同包无法访问
  protected var age = 10

  def showInfo(): Unit = {
    println(s"薪资: $sal")
  }


}
